$(document).ready(function(){   
    
    function validateTitle(){
        if($("#title").val().length < 1){
            $("#title").addClass("error");
            $("#titleInfo").html("Page title is empty!");
            $("#titleInfo").addClass("error");
            $('#bookSend').addClass("incorrect");
            return false;
        }else {
            $("#title").removeClass("error");
            $("#titleInfo").text("");
            $("#titleInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect");
            return true;
        }
    }
    function validateAuthor(){
        if($("#author").val().length < 1){
            $("#author").addClass("error");
            $("#authorInfo").html("Author name is empty!");
            $("#authorInfo").addClass("error");
            $('#bookSend').addClass("incorrect1");
            return false;
        }else {
            $("#author").removeClass("error");
            $("#authorInfo").text("");
            $("#authorInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect1");
            return true;
        }
    }
    function validateGenre(){
        if($("#genre").val().length < 1){
            $("#genre").addClass("error");
            $("#genreInfo").html("Genre is not set!");
            $("#genreInfo").addClass("error");
            $('#bookSend').addClass("incorrect2");
            return false;
        }else {
            $("#genre").removeClass("error");
            $("#genreInfo").text("");
            $("#genreInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect2");
            return true;
        }
    }
    function validatePublicYear(){
        if($("#publicYear").val().length < 1){
            $("#publicYear").addClass("error");
            $("#publicYearInfo").html("Public year is empty!");
            $("#publicYearInfo").addClass("error");
            $('#bookSend').addClass("incorrect3");
            return false;
        }else {
            $("#publicYear").removeClass("error");
            $("#publicYearInfo").text("");
            $("#publicYearInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect3");
            return true;
        }
    }
    function validatePublicPlace(){
        if($("#publicPlace").val().length < 1){
            $("#publicPlace").addClass("error");
            $("#publicPlaceInfo").html("Public place is empty!");
            $("#publicPlaceInfo").addClass("error");
            $('#bookSend').addClass("incorrect4");
            return false;
        }else {
            $("#publicPlace").removeClass("error");
            $("#publicPlaceInfo").text("");
            $("#publicPlaceInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect4");
            return true;
        }
    }
    function validatePublisher(){
        if($("#publisher").val().length < 1){
            $("#publisher").addClass("error");
            $("#publisherInfo").html("Publisher name is empty!");
            $("#publisherInfo").addClass("error");
            $('#bookSend').addClass("incorrect5");
            return false;
        }else {
            $("#publisher").removeClass("error");
            $("#publisherInfo").text("");
            $("#publisherInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect5");
            return true;
        }
    }
    function validateISBN(){
        if($("#ISBN").val().length < 1){
            $("#ISBN").addClass("error");
            $("#ISBNInfo").html("ISBN number is empty!");
            $("#ISBNInfo").addClass("error");
            $('#bookSend').addClass("incorrect6");
            return false;
        }else {
            $("#ISBN").removeClass("error");
            $("#ISBNInfo").text("");
            $("#ISBNInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect6");
            return true;
        }
    }
    function validateStatus(){
        if($("#status").val().length < 1){
            $("#status").addClass("error");
            $("#statusInfo").html("Status is not set!");
            $("#statusInfo").addClass("error");
            $('#bookSend').addClass("incorrect7");
            return false;
        }else {
            $("#status").removeClass("error");
            $("#statusInfo").text("");
            $("#statusInfo").removeClass("error");
            $('#bookSend').removeClass("incorrect7");
            return true;
        }
    }
    
    $("#title").blur(validateTitle);
    $("#title").keyup(validateTitle);
    $("#author").blur(validateAuthor);
    $("#author").keyup(validateAuthor);
    $("#genre").blur(validateGenre);
    $("#genre").keyup(validateGenre);
    $("#publicYear").blur(validatePublicYear);
    $("#publicYear").keyup(validatePublicYear);
    $("#publicPlace").blur(validatePublicPlace);
    $("#publicPlace").keyup(validatePublicPlace);
    $("#publisher").blur(validatePublisher);
    $("#publisher").keyup(validatePublisher);
    $("#ISBN").blur(validateISBN);
    $("#ISBN").keyup(validateISBN);
    $("#status").blur(validateStatus);
    $("#status").keyup(validateStatus);    
    
    $("#BookForm").submit(function(){
        if(validateTitle() && validateAuthor() && validateGenre() && validatePublicYear()
            && validatePublicPlace() && validatePublisher() && validateISBN()
            && validateStatus())
            return true
        else
            return false;
    });
    
    function validateReader(){
        if($("#reader").val().length < 1){
            $("#reader").addClass("error");
            $("#readerInfo").html("You must choose reader!");
            $("#readerInfo").addClass("error");
            $('#borrowSend').addClass("incorrect");
            return false;
        }else {
            $("#reader").removeClass("error");
            $("#readerInfo").text("");
            $("#readerInfo").removeClass("error");
            $('#borrowSend').removeClass("incorrect");
            return true;
        }
    }
    
    function validateBorrowTitle(){
        if($("#borrowTitle").val().length < 1){
            $("#borrowTitle").addClass("error");
            $("#borrowTitleInfo").html("You must choose at least one title!");
            $("#borrowTitleInfo").addClass("error");
            $('#borrowSend').addClass("incorrect");
            return false;
        }else {
            $("#borrowTitle").removeClass("error");
            $("#borrowTitleInfo").text("");
            $("#borrowTitleInfo").removeClass("error");
            $('#borrowSend').removeClass("incorrect");
            return true;
        }
    }
    
    function validateBorrowDate(){
        if($("#borrowDate").val().length < 1){
            $("#borrowDate").addClass("error");
            $("#borrowDateInfo").html("Borrow date is empty!");
            $("#borrowDateInfo").addClass("error");
            $('#borrowSend').addClass("incorrect");
            return false;
        }else {
            $("#borrowDate").removeClass("error");
            $("#borrowDateInfo").text("");
            $("#borrowDateInfo").removeClass("error");
            $('#borrowSend').removeClass("incorrect");
            return true;
        }
    }
    
    function validateExpirationDate(){
        var date = document.getElementById('expirationDate').value;
        var today = new Date(); 
        date = Date.parse(date);

        if(($("#expirationDate").val().length < 1) || (date && ((date.getTime() - today.getTime())) <= 0)) {
            $("#expirationDate").addClass("error");
            $("#expirationDateInfo").html("Expiration date is incorrect!");
            $("#expirationDateInfo").addClass("error");
            $('#borrowSend').addClass("incorrect");
            return false;
        }
        else {
            $("#expirationDate").removeClass("error");
            $("#expirationDateInfo").text("");
            $("#expirationDateInfo").removeClass("error");
            $('#borrowSend').removeClass("incorrect");
            return true;
        }
    }
    
    $("#reader").blur(validateReader);
    $("#reader").keyup(validateReader);
    $("#borrowTitle").blur(validateBorrowTitle);
    $("#borrowTitle").keyup(validateBorrowTitle);
    $("#expirationDate").blur(validateExpirationDate);
    $("#expirationDate").keyup(validateExpirationDate);
    
    $("#borrowForm").submit(function(){
        if(validateReader() && validateBorrowTitle() && validateExpirationDate())
            return true
        else
            return false;
    });
    
    $("#borrowEditForm").submit(function(){
        if(validateExpirationDate())
            return true
        else
            return false;
    });
    
    function validateGetBook(){
        if($("#getBook").val().length < 1){
            $("#getBook").addClass("error");
            $("#getBookInfo").html("Status is not set!");
            $("#getBookInfo").addClass("error");
            $('#reservationSend').addClass("incorrect");
            return false;
        }else {
            $("#getBook").removeClass("error");
            $("#getBookInfo").text("");
            $("#getBookInfo").removeClass("error");
            $('#reservationSend').removeClass("incorrect");
            return true;
        }
    }
    
    $("#getBook").blur(validateGetBook);
    $("#getBook").keyup(validateGetBook);
   
    $("#ReservationForm").submit(function(){
        if(validateGetBook())
            return true
        else
            return false;
    });
    
    function validateFirstName(){
        if($("#firstName").val().length < 1){
            $("#firstName").addClass("error");
            $("#firstNameInfo").html("First name is not set!");
            $("#firstNameInfo").addClass("error");
            $('#readerSend').addClass("incorrect");
            return false;
        }else {
            $("#firstName").removeClass("error");
            $("#firstNameInfo").text("");
            $("#firstNameInfo").removeClass("error");
            $('#readerSend').removeClass("incorrect");
            return true;
        }
    }
    
    function validateSurname(){
        if($("#surname").val().length < 1){
            $("#surname").addClass("error");
            $("#surnameInfo").html("Surname is not set!");
            $("#surnameInfo").addClass("error");
            $('#readerSend').addClass("incorrect1");
            return false;
        }else {
            $("#surname").removeClass("error");
            $("#surnameInfo").text("");
            $("#surnameInfo").removeClass("error");
            $('#readerSend').removeClass("incorrect1");
            return true;
        }
    }
    
    function validateBirthNumber(){
        if($("#birthNumber").val().length < 1){
            $("#birthNumber").addClass("error");
            $("#birthNumberInfo").html("Birth number is not set!");
            $("#birthNumberInfo").addClass("error");
            $('#readerSend').addClass("incorrect2");
            return false;
        }else {
            $("#birthNumber").removeClass("error");
            $("#birthNumberInfo").text("");
            $("#birthNumberInfo").removeClass("error");
            $('#readerSend').removeClass("incorrect2");
            return true;
        }
    }
    
    function validateAddress(){
        if($("#address").val().length < 1){
            $("#address").addClass("error");
            $("#addressInfo").html("Address is not set!");
            $("#addressInfo").addClass("error");
            $('#readerSend').addClass("incorrect3");
            return false;
        }else {
            $("#address").removeClass("error");
            $("#addressInfo").text("");
            $("#addressInfo").removeClass("error");
            $('#readerSend').removeClass("incorrect3");
            return true;
        }
    }
    
    function validateEmail(){
        if($("#email").val().length < 1){
            $("#email").addClass("error");
            $("#emailInfo").html("Email is not set!");
            $("#emailInfo").addClass("error");
            $('#readerSend').addClass("incorrect4");
            return false;
        }else {
            $("#email").removeClass("error");
            $("#emailInfo").text("");
            $("#emailInfo").removeClass("error");
            $('#readerSend').removeClass("incorrect4");
            return true;
        }
    }
    
    $("#firstName").blur(validateFirstName);
    $("#firstName").keyup(validateFirstName);
    $("#surname").blur(validateSurname);
    $("#surname").keyup(validateSurname);
    $("#birthNumber").blur(validateBirthNumber);
    $("#birthNumber").keyup(validateBirthNumber);
    $("#address").blur(validateAddress);
    $("#address").keyup(validateAddress);
    $("#email").blur(validateEmail);
    $("#email").keyup(validateEmail);
   
    $("#ReservationForm").submit(function(){
        if(validateFirstName() && validateSurname() && validateBirthNumber()
            && validateAddress() && validateEmail())
            return true
        else
            return false;
    });


    $(function(){ 
        $(".tablesorter")
        .tablesorter({
            sortList:[[1,0],[2,0]],
            theme: 'blue',
            headers:{
                0:{
                    sorter:false
                }
            },
        widgets: ['zebra', 'filter']
        })
    .tablesorterPager({
        container: $(".pager"), 
        output: '{startRow} to {endRow} ({totalRows})', 
        size: 10, 
        fixedHeight: true, 
        removeRows: false, 
        cssGoto: '.gotoPage' // select dropdown to allow choosing a page 
    }); 
    });
});